package vrpm

import (
	"vrcm/src/vrcm/app/admin/models/monitor"
	common "vrcm/src/vrcm/common/models"
)

type CreateSourcePackAndGroupReq struct {
	TenantId       string `json:"tenant_id"`
	SourcePackName string `json:"source_pack_name"`
	GroupName      string `json:"group_name"`
}

type CreateSourcePackAndGroupRes struct {
	GroupId      int `json:"groupId"`
	SourcePackId int `json:"sourcePackId"`
	VersionId    int `json:"versionId"` //
}

type CreateChannelReq struct {
	ChannelNumber string `json:"channel_number"`
	Name          string `json:"name"`
	EnName        string `json:"en_name"`
	PackageTypeId int    `json:"packageTypeId"`
	ChannelLogo   string `json:"channel_logo"`
	TenantId      string `json:"tenantId"`
	Description   string `json:"description"`
	DescriptionEn string `json:"descriptionEn"`
	SourcePackId  int    `json:"sourcePackId"`
}

type CreateChannelRes struct {
	Id           int `json:"id"`
	GroupId      int `json:"group_id"`       //
	SourcePackId int `json:"source_pack_id"` //
	VersionId    int `json:"versionId"`      //
}

type SaveProgramReq struct {
	ChannelId int   `json:"channel_id"`
	Epgs      []Epg `json:"epgs"`
	Tag       int   `json:"tag" comment:"1导播端"`
	VersionId int   `json:"versionId"`
	SaveType  int   `json:"save_type" comment:"1导入 2手动录入"`
	EventId   int   `json:"event_id"`
}

type Epg1 struct {
	Id          int    `json:"id"`
	TenantId    string `json:"tenant_id"`
	ChannelId   int    `json:"channel_id"`
	EventId     int    `json:"event_id"`
	ProgramId   string `json:"节目ID"`
	ProgramName string `json:"节目名称"`
	Language    string `json:"中文"`
	StartTime   string `json:"开始时间"`
	EndTime     string `json:"结束时间"`
	Describe    string `json:"描述"`
	LookUp      string `json:"回看"`
	Round       int    `json:"round"`
	IsSkip      int    `json:"is_skip"`
	common.ModelTime
}

type Epg struct {
	Id          int    `json:"id"`
	TenantId    string `json:"tenant_id"`
	ChannelId   int    `json:"channel_id"`
	EventId     int    `json:"event_id"`
	ProgramId   string `json:"program_id"`
	ProgramName string `json:"program_name"`
	Language    string `json:"language"`
	StartTime   string `json:"start_time"`
	EndTime     string `json:"end_time"`
	Describe    string `json:"describe"`
	LookUp      string `json:"look_up"`
	Round       int    `json:"round"`
	IsSkip      int    `json:"is_skip"`
	DelaySecond int    `json:"delay_second"`
	DelayType   int    `json:"delay_type" comment:"1 延迟 2 提前"`
	common.ModelTime
}

type EpgRes struct {
	ProgramId       string                   `json:"programId"`
	ProgramName     string                   `json:"programName"`
	Language        string                   `json:"language"`
	StartTime       string                   `json:"startTime"`
	EndTime         string                   `json:"endTime"`
	Describe        string                   `json:"describe"`
	CreateTime      string                   `json:"createTime"`
	UpdateTime      string                   `json:"updateTime"`
	ChannelId       int                      `json:"channelId"`
	IsPlaying       int                      `json:"is_playing"`
	IsSkip          int                      `json:"is_skip"`
	DelaySecond     int                      `json:"delay_second"`
	DelayType       int                      `json:"delay_type" comment:"1 延迟 2 提前"`
	WorksiteNotices []monitor.WorksiteNotice `json:"worksite_notices"`
	TaiBens         []monitor.TaiBen         `json:"tai_bens"`
}

type UpdateProgramIndexReq struct {
	Id     int `json:"id"`
	Active int `json:"active"`
}

type GetProgramReq struct {
	ChannelId int `json:"channel_id"`
	StartTime int `json:"start_time"`
	EndTime   int `json:"end_time"`
	VersionId int `json:"versionId"`
}

type CreatePlayAddressReq struct {
	Name                  string     `json:"name"`
	TenantId              string     `json:"tenantId"`
	ChannelId             int        `json:"channelId"`
	AutoPlayUrl           string     `json:"auto_play_url"`
	BitrateMultipleEnable int        `json:"bitrate_multiple_enable"`
	CodeRate              []CodeRate `json:"codeRate"`
	IsForce               int        `json:"is_force"`
	VersionId             int        `json:"versionId"`
}
type CreatePlayAddressRes struct {
	Id int `json:"id"`
}

type CodeRate struct {
	Resolution string `json:"resolution"`
	Bitrate    string `json:"bitrate"`
	PlayUrl    string `json:"play_url"`
}

type DeletePlayAddressReq struct {
	TenantId  string `json:"tenantId"`
	ChannelId int    `json:"channelId"`
	Id        int    `json:"id"`
	VersionId int    `json:"versionId"`
}

type StartOrStopChannelReq struct {
	Id       int    `json:"id"`
	Status   int    `json:"status"`
	TenantId string `json:"tenantId"`
}

type DeleteChannelReq struct {
	TenantId string `json:"tenantId"`
	Id       int    `json:"id"`
}

type DeleteGroupReq struct {
	TenantId string `json:"tenantId"`
	Id       int    `json:"id"`
}

type DeleteSourcePack struct {
	TenantId string `json:"tenantId"`
	Id       int    `json:"id"`
}

type SkipProgramReq struct {
	Id       int    `json:"id"`
	ParamIds string `json:"param_ids"`
}
